package river_city_ransom.decorators;

import exceptions.ComposantError;
import river_city_ransom.services.GestionCombat;
import river_city_ransom.services.MoteurJeu;
import river_city_ransom.services.Terrain;
import river_city_ransom.types.Commande;
import river_city_ransom.types.EtatPartie;

public class MoteurJeu_D implements MoteurJeu {
	private MoteurJeu delegate;
	
	public MoteurJeu_D(MoteurJeu delegate){
		this.delegate = delegate;
	}
	
	public MoteurJeu delegate(){
		return delegate;
	}
	
	@Override
	public boolean equals(Object o) {
		return delegate().equals(o);
	}
	
	@Override
	public String toString() {
		return delegate().toString();
	}
	
	/** _________________________________________________________ OBSERVATORS */
	@Override
	public GestionCombat gestion() {
		return delegate().gestion();
	}

	
	@Override
	public EtatPartie resultatPartie() {
		return delegate().resultatPartie();
	}

	@Override
	public boolean partieTerminee() {
		return delegate().partieTerminee();
	}

	/** ________________________________________________________ CONSTRUCTORS */
	@Override
	public void init(Terrain t) throws ComposantError {
		delegate().init(t);
	}
	/** ___________________________________________________________ OPERATORS */
	@Override
	public void calculerPasDeJeu(Commande commande1, Commande commande2)
			throws ComposantError {
		delegate().calculerPasDeJeu(commande1, commande2);
	}
}
